import api from './api';

/**
 * 用户登录
 * @param {string} username - 用户名
 * @param {string} password - 密码
 * @returns {Promise} - 返回登录请求的 Promise 对象
 */
export function login(username, password) {
  const params = new URLSearchParams();
  params.append('username', username);
  params.append('password', password);

  return api.post('/user/login', params)
    .then(response => {
      if (response.code === 200 && response.data) {
        // 保存用户信息到本地存储
        saveUserInfo(response.data);
        console.log('登录成功，保存的用户信息:', response.data);
      }
      return response;
    });
}


/**
 * 添加新用户方法。
 * @param {string} userId - 用户ID
 * @param {string} name - 用户姓名
 * @param {string} username - 用户账号
 * @param {string} password - 用户密码
 * @param {string} role - 用户角色
 * @param {string} department - 部门名称
 * @returns {Promise} - 返回添加用户请求的 Promise 对象
 */
export function addUser(userId, name, username, password, role, department) {
  const params = new URLSearchParams();
  params.append('user_id', userId);
  params.append('name', name);
  params.append('username', username);
  params.append('password', password);
  params.append('role', role);
  params.append('dep_id', department); // 将部门名称作为 dep_id 传递
  return api.post('/user/add', params);
}

/**
 * 保存用户信息到本地存储
 * @param {Object} userInfo - 用户信息对象
 */
export function saveUserInfo(userInfo) {
  if (userInfo) {
    localStorage.setItem('user', JSON.stringify(userInfo));

    // 如果用户信息中包含 token，单独存储
    if (userInfo.token) {
      localStorage.setItem('token', userInfo.token);
    }
  }
}

/**
 * 获取当前登录用户信息
 * @returns {Object|null} - 返回用户信息对象，如果未登录则返回 null
 */
export function getCurrentUser() {
  const userStr = localStorage.getItem('user');
  return userStr ? JSON.parse(userStr) : null;
}

/**
 * 退出登录，清除本地存储中的用户信息
 */
export function logout() {
  localStorage.removeItem('user');
  localStorage.removeItem('token');
  console.log('退出登录成功')
  // 如果有其他与用户相关的数据也需要清除，可以在这里添加
}

